#ifndef _ILOG_H_
#define _ILOG_H_

#include "Common.h"

class ILog
{
public:
	virtual ~ILog()
	{
	};

	lvVoid SetTxtColor(const lvDword cdwColor)
	{
		m_dwCurTxtColor = cdwColor;
	};
	lvDword GetTxtColor() const
	{
		return m_dwCurTxtColor;
	};
	lvDword GetDefTxtColor() const
	{
		return m_dwDefTxtColor;
	};

	lvVoid SetTxtBold(const lvBool cbBold)
	{
		m_bCurTxtBold = cbBold;
	};
	lvBool GetTxtBold() const
	{
		return m_bCurTxtBold;
	};
	lvBool GetDefTxtBold() const
	{
		return m_bDefTxtBold;
	};

	lvVoid SetTxtItallic(const lvBool cbItallic)
	{
		m_bCurTxtItallic = cbItallic;
	};
	lvBool GetTxtItallic() const
	{
		return m_bCurTxtItallic;
	};
	lvBool GetDefTxtItallic() const
	{
		return m_bDefTxtItallic;
	};

	lvVoid SetFontSize(const lvInt ciFontSize)
	{
		m_iCurFontSize = ciFontSize;
	};
	lvInt GetFontSize() const
	{
		return m_iCurFontSize;
	};
	lvInt GetDefFontSize() const
	{
		return m_iDefFontSize;
	};

	lvVoid SetFont(const lvString &cstrFontName)
	{
		m_strCurFont.assign(cstrFontName);
	};
	lvString &GetFont()
	{
		return m_strCurFont;
	};
	lvString &GetDefFont()
	{
		return m_strDefFont;
	};

	virtual lvVoid Clear()=0;
	virtual lvVoid Write(const lvString &cstrText)=0;
	virtual lvVoid WriteLn(const lvString &cstrText)=0;
protected:
	lvDword m_dwCurTxtColor;
	lvDword m_dwDefTxtColor;

	lvBool m_bCurTxtBold;
	lvBool m_bDefTxtBold;

	lvBool m_bCurTxtItallic;
	lvBool m_bDefTxtItallic;

	lvInt m_iCurFontSize;
	lvInt m_iDefFontSize;

	lvString m_strCurFont;
	lvString m_strDefFont;
};

#endif